【レポート】最新情報:Snowflakeネイティブアプリフレームワーク #SnowflakeDB
2023年9月8日(金)に ANAインターコンチネンタル東京にて、Snowflake 社による日本最大級のデータイベント「Snowflake Data Cloud World Tour Tokyo」が開催されました。
本記事では、Snowflake株式会社 庄司氏による「最新情報:Snowflakeネイティブアプリフレームワーク」というセッションについてレポートします。
セッション情報
- セッションタイトル
- 最新情報:Snowflakeネイティブアプリフレームワーク
- スピーカー
- Snowflake株式会社 セールスエンジニアリング本部 庄司 拓矢 氏
- セッション概要
Snowflake ネイティブアプリフレームワークを使用することで、データクラウド上でお客様のアプリケーションを、お客様のデータに、ネイティブに提供することができます。このセッションでは、Snowflake ネイティブアプリの構築・配布/収益化・デプロイする方法と仕組みについて、デモを交えながらご紹介します。
※DATA CLOUD WORLD TOUR Tokyo – アジェンダより引用
セッション内容
フレームワークの概要
- Snowflake ネイティブアプリフレームワーク
- Snowflake 上でデータアプリケーションを構築し、マーケットプレイスでの配布・収益化まで実施可能なフレームワーク
- 構築時は、ストアドプロシージャ・Streamlit などの Snowflake の機能を使用可能
- マーケットプレイスでの配布・収益化は現在パブリックプレビュー(近日中に開始)
- 従来のアプリ展開モデルとの違い
- マネージド、コネクテッドのいずれであっても UI、処理レイヤーをプロバイダー側で用意する必要があった
- Snowflake ネイティブとなることで
- 処理はコンシューマー側のウェアハウスで実施できる
- Streamlit の機能で UI も作成できるように
- Snowflake ネイティブアプリの例
構築、使用の流れ
- プロバイダー側
- 構築
- Snowflake(Snowsight)、VScodeなどの開発ツールを使用可能
- Streamlit、Snowpark、データシェアリングなど Snowflake の機能を活用できる
- 配布と収益化
- プライベート、パブリックな展開が可能
- セキュリティ上の脅威や悪用については、Snowflake 側でアプリケーションに対する事前審査・承認を行うことで担保
- 課金モデルはトライアルの可否も含めプロバイダー側で設定可能
- 運用
- バージョン管理機能もサポート
- 構築
- コンシューマー側
- 発見と評価
- Snowflake マーケットプレイスでアプリケーションを検索できる
- 購入とインストール
- プロバイダー側で提供していれば無料トライアルも可能
- 実行
- 管理者はアプリに付与された権限の確認、管理が可能
- データは Snowflake アカウント内に保持される
- 発見と評価
詳細な仕組み
- アプリケーションコードはファイルベースで管理
- コードファイルを含むアプリケーションパッケージを作成する
- アプリケーションパッケージ
- アプリケーションに必要なリソースを含むコンテナとして機能
- アプリケーションファイルや共有データのコンテンツを含む
- アプリケーションに必要なファイルは、パッケージ内にステージを作成し格納する
- バージョン管理もアプリケーションパッケージ単位
- アプリケーションパッケージ
- ソースコードやアプリケーションロジックがコンシューマー側にわたることはない
- 機能範囲のみ提供できる
- コンシューマー側のデータ利用
- コンシューマー側のデータへアクセスする際は、コンシューマー側でアクセス制御を行える
詳細な説明
- サポートされる Snowflake 機能
- 今後も拡張予定
- アプリケーションの構築に必要なもの
- マニフェストファイル
- アプリケーションの構成情報を含む YAML ファイル
- セットアップスクリプト
- コンシューマー側でアプリケーションをインストール際に実行される SQL
- マニフェストファイル
- アプリケーションパッケージの内訳
- バージョン、リリース管理に用いる
- Release Directive を更新することでコンシューマー側にシームレスなアプリケーションの追加機能提供が可能
- コンシューマー側
- 単一のアカウントもサポート
- 社内のみの利用など
デモ
- 内容
- 簡単な例で Native Apps Frameworkを使用したアプリケーションの開発の流れを紹介
- 手順
- アプリケーションコードの配置
- コード管理用のデータベース、スキーマ、ステージを作成
- ステージにアプリケーションファイルを配置
- マニフェストファイル
- セットアップスクリプト
- Readmeファイル など
- アプリケーションパッケージの作成
- デモでは、パッケージ内に共有データ用テーブルも作成
- アプリケーションのデバッグ
- デバッグモードを
True
と指定することで、オブジェクトの確認をしながら改修を進めることができる
- デバッグモードを
- アプリケーションのリリース
ALTER APPLICATION PACKAGE
でバージョンを指定しながらリリース
- アプリケーションコードの配置
さいごに
Snowflake Native Apps Framework について、その基本から各構成の詳細、デモを通したアプリケーションの開発の流れまでも解説いただいた内容でした。
Snowflake のインフラ上にあることで、アプリケーションからデータへのアクセスは Snowflake にもとよりある強力なガバナンス機能で制御され、アプリケーションそのものについても、配布前に Snowflake による審査が行われることで、セキュリティ面は担保されるとのことです。
アプリケーションの UI も Streamlit を加えることで構築できるようになるので、データアプリケーション開発が、よりシンプルかつ迅速に行えると感じました。
Native Apps Framework を使用したアプリケーション開発については、公式ドキュメントにチュートリアルも用意されているので、こちらに取り組むことでよりイメージもつかめるかなと思いました。